import axios from "axios"
import { ElMessage } from 'element-plus'
import { el } from "element-plus/es/locales.mjs";
import config from "../config";
const instance = axios.create({
  baseURL: config.baseApi, // 所有请求的基础路径
  // timeout: 5000,
  method: 'get',
});
// 添加请求拦截器
instance.interceptors.request.use(function (config) {
  // 在发送请求之前做些什么
  return config;
}, function (error) {
  // 对请求错误做些什么
  return Promise.reject(error);
});

// 添加响应拦截器
instance.interceptors.response.use(function (response) {
  console.log(response);
  // 2xx 范围内的状态码都会触发该函数。
  // 对响应数据做点什么
  const { code, data, msg, message } = response.data;
  if (code == 200) {
    return response.data;
  }
  else {
    ElMessage.error(msg || message || '请求失败');
    return Promise.reject(msg || message|| '请求失败');
  }
}, function (error) {
  // 超出 2xx 范围的状态码都会触发该函数。
  // 对响应错误做点什么
  return Promise.reject(error);
});


function request(options) {
  //对mock开关做一个处理
  let isMock = config.mock;

  //单个接口mock处理
  if (typeof options.mock != 'undefined') {
    isMock = options.mock;
  }

  //针对环境做一个处理
  console.log(config.env);

  if (config.env == 'prod') {
    //生产环境 不能用mock
    instance.defaults.baseURL = config.baseApi;
  }
  else {
    //开发测试环境(非生产环境  可以选择是否用mock)
    instance.defaults.baseURL = isMock ? config.mockApi : config.baseApi;
  }
  return instance(options);
}

export default request;